package com.transaction.manage.localMapper;

import com.transaction.manage.model.dto.AccountApply;
import com.transaction.manage.myMapper.MyMapper;
import org.apache.ibatis.annotations.Param;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public interface AccountApplyMapper extends MyMapper<AccountApply> {

    void insertAccountApply(@Param("channelCode") String channelCode,
                            @Param("handleDate") String handleDate,
                            @Param("flowStep") String flowStep,
                            @Param("dataList") List<Map<String, Object>> dataList);

    List<LinkedHashMap<String, Object>> selectAccountApplyForMap(@Param("channelCode") String channelCode,
                                                                 @Param("handleDate") String handleDate);
    List<LinkedHashMap<String, Object>> selectAccountApplySendTaForMap(@Param("channelCode") String channelCode,
                                                                       @Param("handleDate") String handleDate);

    List<LinkedHashMap<String, Object>> indiOrInstNotSupportList(@Param("channelCode") String channelCode,
                                                                 @Param("handleDate") String handleDate,
                                                                 @Param("indiOrInst") String indiOrInst);

    List<LinkedHashMap<String, Object>> openAccountTypeNotSupportList(@Param("channelCode") String channelCode,
                                                                      @Param("handleDate") String handleDate,
                                                                      @Param("indiOpenAccountType") String indiOpenAccountType,
                                                                      @Param("instOpenAccountType") String instOpenAccountType);

    List<LinkedHashMap<String, Object>> requiredFieldIsEmptyList(@Param("channelCode") String channelCode,
                                                                 @Param("handleDate") String handleDate,
                                                                 @Param("requiredFields") String[] requiredFields);

    List<LinkedHashMap<String, Object>> sexNotSameForCertificateNoList(@Param("channelCode") String channelCode,
                                                                       @Param("handleDate") String handleDate);

    List<LinkedHashMap<String, Object>> openAccountNotMappingToFxqList(@Param("channelCode") String channelCode,
                                                                       @Param("handleDate") String handleDate);

    List<LinkedHashMap<String, Object>> selectAccountForCfm(@Param("channelCode") String channelCode,
                                                            @Param("lastDay") String lastDay);
}